home *** CD-ROM | disk | FTP | other *** search
- FixCybAccess
- _____________________________________________________________________________
-
- The cybscsi.device and the z3scsi.device of Phase5 accesses chip memory
- for a controlled busy-wait loop. I don't know precisely what this
- busy-wait is used for, but the device does this by accessing the chip
- memory location 0xffff0 like this,
-
- nop
- tst.w $ffff0
- nop
-
- however, WITHOUT EVEN ALLOCATING THIS LOCATION BEFORE. Obviously, this makes
- MuGuardianAngle SCREAM, and for good reason: What you see here is very bad
- programming style and very questionable for a commercial product. First of
- all, the chip memory timing depends on the DMA traffic of the native hardware
- and hence on the screen solution. Second, even IF this busy wait has to made,
- it is required to ALLOCATE the memory location used for the dummy read.
-
- The FixCybAccess fixes this by an AllocAbs() of this location and hence
- avoids this hit.
-
- It *DOES NOT* fix the general DMA related problems of the cybscsi.device, as
- for example not calling the Os functions CachePreDMA() and CachePostDMA() and hence
- passing a (possibly invalid) logical address to the DMA logic instead of
- the true physical address.
-
- You only need to run this program if you want to use the MuGuardianAngel. To
- install it, type
-
- run FixCybAccess
-
- on the shell. To abort it, break it with a ^C signal.
-